//  PKRequestManager.m
//  PianKe
//  Created by lanou on 15/12/22.
//  Copyright (c) 2015年 Bai. All rights reserved.

#import "HNRequestManager.h"

@implementation HNRequestManager

+ (void)requestWithUrlString:(NSString *)urlString parDic:(NSDictionary *)parDic method:(RequestType)method finish:(Finish)finish error:(Error)error{
    
    // 请求的URL
    NSURL *url  = [NSURL URLWithString:urlString];
    // 创建可变请求
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    
    if (method == POST) {
        
        // 具体是post 还是get 请求 取决于 [request setHTTPMethod:@"POST"] 如果 写post 就是post 如果 不写的话就是get请求
        [request setHTTPMethod:@"POST"];
        // 创建一个数组保存临时字符串
        NSMutableArray *strArray = [NSMutableArray array];
        // 遍历字典 拼接键值对
        if (parDic.count) {
            // 拼接参数字符串
            for (NSString *key in parDic) {
                
                NSString *str = [NSString stringWithFormat:@"%@=%@", key, parDic[key]];
                
                [strArray addObject:str];
                
            }
            
            // 将数组中的字符串进行拼接
            NSString *parString = [strArray componentsJoinedByString:@"&"];
            
            // 将字符串 转化为 NSData类型
            [request setHTTPBody:[parString dataUsingEncoding:NSUTF8StringEncoding]];
            
            
        }
        // 请求数据
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
            
            // 判断是否请求成功
            if (!connectionError) {
                
                finish(data);// 函数 的回调
                
                NSLog(@"请求成功");
            }else{
                
                error(connectionError);
                
                NSLog(@"请求失败");// 函数的回调
                
            }
        }];
        
    }else{
        
        [request setHTTPMethod:@"GET"];

        // Get请求 异步
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
            
            // 判断是否请求成功
            if (!connectionError) {
                
                finish(data);// 函数 的回调
                
                NSLog(@"请求成功");
            }else{
                
                error(connectionError);
                
                NSLog(@"请求失败");// 函数的回调
                
            }
        }];

    }
    
 
}
















@end
